#pragma once
#include "DXAMLCommon.h"
#include "IXcpBrowserHost.h"
#include "IXcpHostSite.h"
#include "IMediaQueueClient.h"
#include "IPALDownloadResponseCallback.h"
#include "ICoreWindowRenderTarget.h"
#include "IPALMemory.h"
#include "IMediaQueue.h"
#include "IPALAbortableOperation.h"
#include "IPALUri.h"
#include "RangeRequestData.h"



struct IMediaServices
{
public:
	/*0000 0x00000000 +00000000*/ virtual XUINT32                          Release() = 0;
	/*0001 0x00000001 +00000004*/ virtual XUINT32                          AddRef() = 0;
	/*0002 0x00000002 +00000008*/ virtual HRESULT                          CheckUri( CXString *pstrRelativeUri, XUINT32 eUnsecureDownloadAction) = 0;
	/*0003 0x00000003 +00000012*/ virtual HRESULT                          UnsecureDownloadFromSite( CXString *pstrRelativeUri, struct IPALDownloadResponseCallback *pICallback, XUINT32 eUnsecureDownloadAction, struct IPALAbortableOperation **ppIAbortableDownload, struct IPALUri *pPreferredBaseUri, struct RangeRequestData *pRangeRequestData) = 0;
	/*0004 0x00000004 +00000016*/ virtual struct IXcpBrowserHost *         GetBrowserHost() = 0;
	/*0005 0x00000005 +00000020*/ virtual struct IXcpHostSite *            GetHostSite() = 0;
	/*0006 0x00000006 +00000024*/ virtual XUINT32                          GetThreadID() = 0;
	/*0007 0x00000007 +00000028*/ virtual HRESULT                          CreateMediaQueue(struct IMediaQueueClient *pClient,struct IMediaQueue **ppQueue) = 0;
	/*0008 0x00000008 +00000032*/ virtual XUINT32                          GetApplicationMajorVersion() = 0;
	/*0009 0x00000009 +00000036*/ virtual XINT32                           GetDrmApplicationIdentity(struct IPALMemory **) = 0;
	/*0010 0x0000000A +00000040*/ virtual struct ICoreWindowRenderTarget * NWGetWindowRenderTarget() = 0;
};